Skip to content

fix: vordr 1.86 builder + repair A2ML/trufflehog/Hypatia CI checks#41

Merged
hyperpolymath merged 4 commits into
mainfrom
claude/vordr-full-build
May 15, 2026
Merged

fix: vordr 1.86 builder + repair A2ML/trufflehog/Hypatia CI checks#41
hyperpolymath merged 4 commits into
mainfrom
claude/vordr-full-build

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

@hyperpolymath hyperpolymath commented May 15, 2026

1. vordr full container build (original task)

Root cause: container-stack/vordr/Containerfile pinned rust:1.83-slim, but the committed Cargo.lock resolves indexmap 2.14.0 (Cargo edition2024 → Cargo ≥ 1.85) and icu_* 2.2.0 / idna_adapter 1.2.2 (MSRV rustc 1.86). cargo build --release --locked aborts at manifest-parse on 1.83.

Fix: bump builder to rust:1.86-slim. Reproduced exact container command locally: 1.83 ❌ → 1.85 ❌ → 1.86 ✅ (release binary, 3m33s); 1.94 ✅. smoke build (vordr) is green on this PR.

2. Three pre-existing CI checks (deep-fixed on request)

All three failed identically on main (merged #39). Each root-caused by local reproduction:

Validate A2ML manifests

The workflow pinned a2ml-validate-action@b2f28c3 (#4), which predated the typed-manifest / contractile-shape identity exemptions → 26 false "missing identity" errors on legitimate .a2ml files. Upstream HEAD (#8) adds the exemptions but is corrupted: a stray newline splits a comment so ame/project runs as a command and aborts under set -e. No external action SHA validates this repo cleanly.
Fix: vendor the latest validator logic (.github/scripts/validate-a2ml.sh) with the upstream newline repaired, invoked from dogfood-gate.yml with paths-ignore extended for stapeln's structurally-distinct doc-types (clade declarations, YAML anchor files, agent-instruction configs). Verified locally: 62 scanned, 0 errors, exit 0.

trufflehog

The action wraps a Docker range-scan (--since-commit BASE --branch HEAD against :latest) that fails on PRs even with zero secrets. A full-history scan with trufflehog 3.95.3 finds 0 verified / 0 unverified secrets — there is no real leak.
Fix: replace the action with a deterministic, version-pinned full-history CLI scan in secret-scanner.yml.

Hypatia Neurosymbolic Analysis

The build step ran cd scanner, but the Hypatia mix project is at the repo root (no scanner/ dir), so the step aborted under set -e. (The scan itself uses --exit-zero, so findings never fail it.)
Fix: build at the repo root in hypatia-scan.yml; escript.build emits ./hypatia, which hypatia-cli.sh prefers.

Notes

  • A2ML is vendored only because upstream HEAD is broken and no good SHA exists; re-adopt a2ml-validate-action once its HEAD is fixed.
  • trufflehog/Hypatia fixes touch shared CI but are minimal and root-cause-scoped.

Test plan

  • vordr release build reproduced green locally (rust 1.86)
  • A2ML vendored validator: 0 errors locally
  • trufflehog full-history scan: 0 secrets locally
  • CI confirms smoke build (vordr), Validate A2ML manifests, trufflehog, Hypatia Neurosymbolic Analysis all green

claude added 2 commits May 15, 2026 18:16
The pinned Cargo.lock resolves icu_* 2.2.0 and idna_adapter 1.2.2
(MSRV rustc 1.86) plus indexmap 2.14.0 (Cargo `edition2024`, needs
Cargo >= 1.85). On the previous rust:1.83-slim builder,
`cargo build --release --locked` aborts at manifest parse:

  error: failed to parse manifest at .../indexmap-2.14.0/Cargo.toml
  Caused by: feature `edition2024` is required ... not stabilized
  in this version of Cargo (1.83.0)

Bumping the builder stage to rust:1.86-slim (the minimum that
satisfies every locked dependency) lets the full vordr image build
end-to-end. Verified locally: 1.83 fails, 1.85 fails (icu needs
1.86), 1.86 builds the release binary cleanly.
Three pre-existing checks failed identically on main; root-caused each:

- Validate A2ML manifests: the pinned a2ml-validate-action SHA predated
  the typed-manifest / contractile-shape identity exemptions (26 false
  "missing identity" errors), and upstream HEAD is corrupted (a stray
  newline splits a comment so `ame/project` runs as a command and aborts
  under `set -e`). Vendor the latest validator logic with that newline
  repaired, invoked from the workflow with paths-ignore extended for
  stapeln's legitimately distinct doc-types (clade decl, YAML anchors,
  agent-instruction configs). Verified: 0 errors, exit 0.

- trufflehog: the action wraps a Docker range-scan
  (--since-commit BASE --branch HEAD against :latest) that fails on PRs
  even with zero secrets. A full-history filesystem scan
  (trufflehog 3.95.3) finds 0 verified/unverified secrets, so there is
  no real leak. Replace the action with a deterministic pinned
  full-history CLI scan.

- Hypatia Neurosymbolic Analysis: the build step ran `cd scanner`, but
  the Hypatia mix project is at the repo root (no scanner/ dir), so the
  step aborted under set -e. Build at the repo root; escript.build emits
  ./hypatia which hypatia-cli.sh prefers.
@hyperpolymath hyperpolymath changed the title fix(container-stack): bump vordr builder to rust 1.86 for locked deps fix: vordr 1.86 builder + repair A2ML/trufflehog/Hypatia CI checks May 15, 2026
claude and others added 2 commits May 15, 2026 19:42
The job failed in ~15s — before clone/build — because erlef/setup-beam
could not resolve the pinned Elixir 1.19.4 / OTP 28.3 (not in its
version index). Hypatia's mix.exs only requires `elixir ~> 1.14`; pin
to the stable 1.17 / OTP 27 lines so setup-beam resolves the latest
patch. Complements the earlier scanner-build-path fix.
@hyperpolymath hyperpolymath marked this pull request as ready for review May 15, 2026 19:45
@hyperpolymath hyperpolymath merged commit dfb4bf5 into main May 15, 2026
37 checks passed
@hyperpolymath hyperpolymath deleted the claude/vordr-full-build branch May 15, 2026 19:45
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants